package com.yc.cloud.entity;

import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableName;
import com.yc.cloud.common.orm.BaseEntity;
import java.io.Serializable;

import lombok.Data;
import lombok.EqualsAndHashCode;

/**
 * <p>
 * 算法策略规则表
 * </p>
 *
 * @author kinggu
 * @since 2025-07-30
 */
@Data
@EqualsAndHashCode(callSuper = true)
@TableName("alg_strategy_rule")
public class AlgStrategyRule extends BaseEntity {

    private static final long serialVersionUID = 1L;

    /**
     * 所属策略ID (关联 alg_strategy.id)
     */
    @TableField("strategy_id")
    private Long strategyId;

    /**
     * 算法ID (冗余字段，关联 alg_algorithm.id)
     */
    @TableField("alg_algorithm_id")
    private Long algAlgorithmId;

    /**
     * 绑定的模型版本ID (关联 alg_model_version.id)
     */
    @TableField("alg_model_version_id")
    private Long algModelVersionId;

    /**
     * 此条规则的独立运行参数 (JSON格式)
     */
    @TableField("param_config")
    private String paramConfig;

    /**
     * 告警级别(覆盖算法): 1-一般, 2-警告, 3-紧急
     */
    @TableField("level")
    private Byte level;

    /**
     * 发布状态：0->未发布，1->已发布
     */
    @TableField("publish_status")
    private Integer publishStatus;

    /**
     * 逻辑删除标志 (0:未删除, 1:已删除)
     */
    @TableField("is_deleted")
    private Boolean deleted;

    public static final String StrategyId = "strategy_id";
    public static final String AlgAlgorithmId = "alg_algorithm_id";
    public static final String AlgModelVersionId = "alg_model_version_id";
    public static final String ParamConfig = "param_config";
    public static final String Level = "level";
    public static final String PublishStatus = "publish_status";
    public static final String Deleted = "is_deleted";

} 